package com.sugar.psych.assessment.module.business.controller.admin.user.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 用户信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class UserRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6788")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "学校编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelIgnore
    private Long schoolId;

    @Schema(description = "学校名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("学校名称")
    private String schoolName;

    @Schema(description = "用户名（用户ID号，唯一标识）", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("用户名（用户ID号，唯一标识）")
    private String username;

    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("用户昵称")
    private String nickname;

    @Schema(description = "头像地址")
    @ExcelProperty("头像地址")
    private String avatar;

    @Schema(description = "手机号")
    @ExcelProperty("手机号")
    private String mobile;

    @Schema(description = "微信OpenID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10675")
    @ExcelProperty("微信OpenID")
    private String wechatOpenId;

    @Schema(description = "总积分", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("总积分")
    private Integer totalPoints;

    @Schema(description = "账户状态（1正常 0封禁）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("账户状态（1正常 0封禁）")
    private Boolean status;

    @Schema(description = "学生认证姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("学生认证姓名")
    private String authName;

    @Schema(description = "学生认证学生证号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("学生认证学生证号")
    private String authId;

    @Schema(description = "最近一次登录时间")
    @ExcelProperty("最近一次登录时间")
    private LocalDateTime lastLoginTime;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}